﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BackofficeExtremeEvents.Data;
using extremeEvents;

namespace BackofficeExtremeEvents.Utilizadores
{
    public partial class EditarUtilizador : System.Web.UI.Page
    {
        
        protected void Page_Load(object sender, EventArgs e)
        {
            //verifica se é a primeira vez que entra na pagina
            if (!IsPostBack)
            {
                try
                {
                    
                    //recebe o id do utilizador escolhido anteriormente
                    Guid id = (Guid)Session["Uid"];
                    //procurar por utilizador selecionado
                    procurarUtilizador_porGuid_Result ret = (procurarUtilizador_porGuid_Result)DLGenerica.Instance.getUtilizadorById(id);

                    //preenche textboxes
                    txEmail.Text = ret.Email;
                    txPrimeiro_Nome.Text = ret.primeiro_nome;
                    txUltimo_Nome.Text = ret.ultimo_nome;
                    txNIF.Text = ret.nif;
                    txMorada.Text = ret.morada;
                    txNumero.Text = ret.numero;
                    txCodigo.Text = ret.codigo_postal;
                    txDistrito.Text = ret.distrito;
                    txConcelho.Text = ret.concelho;
                    txFreguesia.Text = ret.freguesia;
                    txOrganizacao.Text = ret.nome_organizacao;
                    for (int i = 0; i <= dbPaises.Items.Count - 1; i++) 
                    {
                        dbPaises.SelectedIndex = i;
                        if (dbPaises.Text == ret.pais) 
                        {
                            dbPaises.SelectedIndex = i;
                            break;
                        }
                    }

                    //verificar genero
                    if (ret.genero == "Masculino")
                        rbMasculino.Checked = true;
                    else
                        rbFeminino.Checked = true;
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                }
            }
               
        }

        protected void btAlterar_Click(object sender, EventArgs e)
        {
            using (var utilizadorDB = new extremeEventsEntities())
            {
                //recebe o id do utilizador escolhido anteriormente
                Guid id = (Guid)Session["Uid"];
                //chamar sp para actualizar o utilizador
                var ret = utilizadorDB.editarUtilizador(
                    id,
                    txEmail.Text,
                    txPrimeiro_Nome.Text,
                    txUltimo_Nome.Text,
                    txNIF.Text,
                    txOrganizacao.Text,
                    rbMasculino.Checked ? "Masculino" : "Feminino",
                    txMorada.Text,
                    txNumero.Text,
                    txCodigo.Text,
                    txDistrito.Text,
                    txConcelho.Text,
                    txFreguesia.Text,
                    dbPaises.SelectedItem.ToString()
                );

                //informa utilizador que foi editado com sucesso
                Response.Write("<script>alert('Utilizador editado com sucesso!');</script>");
                //retornar à lista de utilizadores
                Response.Redirect("../Utilizadores/ListarUtilizadores.aspx");
            }
        }

        protected void btCancelar_Click(object sender, EventArgs e)
        {
            Response.Redirect("../Utilizadores/ListarUtilizadores.aspx");
        }

        
    }
}